class ActiveData {
    constructor(value) {
        this.value = value;

        // 初始化观察者列表
        this.listeners = [];
    }

    // 注册观察者
    addListeners(...listeners) {
        listeners.forEach((listener) => this.listeners.push(listener));
    }

    // 注销观察者
    removeListener(listener) {
        for (let i = 0; i < this.listeners.length; i++) {
            if (this.listeners[i] === listener) {
                this.listeners.splice(i, 1);
                break;
            }
        }
    }

    // 设置数据
    setValue(value) {
        this.value = value;

        // 立即触发事件
        this.triggerEvent();
    }

    // 触发事件
    triggerEvent() {
        // 通知所有观察者响应数据变化
        this.listeners.forEach((li) => li.onEvent(this.value));
    }
}

class Listener {
    onEvent(value) {
        //留白等待子类自行实现
    }
}
